home *** CD-ROM | disk | FTP | other *** search
/ The World of Computer Software / The World of Computer Software.iso / cmdlg7.zip / USRWIN_.PAS < prev   
Pascal/Delphi Source File  |  1992-12-10  |  5KB  |  277 lines

  1. {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%}
  2. {   \\\                                    }
  3. {  -(j)-                                   }
  4. {    /juanca                               }
  5. {    ~                                     }
  6. {   ⌐ ACASA 1989-1992, All rights reserved }
  7. {%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%}
  8.  
  9. { tUsrWin object, easier to hanlde descendant of tWindow,
  10.   it takes a tPort for painting, instead of a Device Context
  11.   and has a PrintPage method that is called from a tPrinter object
  12.   }
  13.  
  14. UNIT USRWIN_;
  15. {$C MOVEABLE DEMANDLOAD DISCARDABLE}
  16. INTERFACE
  17.   USES
  18.     WINTYPES,
  19.     OBJECTS,
  20.     OWINDOWS,
  21.     COMMDLG,
  22.     PORT_;
  23.  
  24.   TYPE
  25.     Super   = TWindow;
  26.     PUsrWin = ^TUsrWin;
  27.     TUsrWin = OBJECT ( Super )
  28.  
  29.       FUNCTION
  30.         getPort:PPort;
  31.           virtual;
  32.  
  33.       FUNCTION
  34.       extraText :pChar;
  35.         virtual;
  36.  
  37.       PROCEDURE
  38.         setText(s:pChar);
  39.           virtual;
  40.       PROCEDURE
  41.       paint(paintDC:HDC; VAR paintInfo:TPaintStruct);
  42.         virtual;
  43.       PROCEDURE
  44.       upaint(dc:pPort; bounds:tRect; erased:Boolean);
  45.         virtual;
  46.  
  47.       PROCEDURE
  48.       printPage(dc :pPort; page: Word; size: tPoint; var bounds: tRect; pflags: Word);
  49.         virtual;
  50.  
  51.       PROCEDURE
  52.       getPrintRange(var fromPage, toPage :Word);
  53.         virtual;
  54.  
  55.       FUNCTION
  56.       printFlags :Longint;
  57.         virtual;
  58.  
  59.       PROCEDURE
  60.         repaintAll(erase:Boolean);
  61.       PROCEDURE
  62.         repaint(Box:tRect;erase:Boolean);
  63.  
  64.       PROCEDURE
  65.       setRepaintFlag(onOff :Boolean);
  66.  
  67.       PROCEDURE
  68.         update;
  69.  
  70.       PROCEDURE
  71.       move(bounds :tRect; redraw:Boolean);
  72.  
  73.       FUNCTION
  74.         post(msg, wparam:Word; lparam:Longint):Boolean;
  75.       FUNCTION
  76.         send(msg, wparam:Word; lparam:Longint):Longint;
  77.  
  78.       PROCEDURE
  79.         getClientRect(var b:tRect);
  80.  
  81.       PROCEDURE
  82.         alert(msg:pChar);
  83.  
  84.     END;
  85.  
  86.  
  87. {@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@}
  88. IMPLEMENTATION
  89.   USES
  90.     WINPROCS,
  91.     STRINGS;
  92.  
  93.   {}
  94.   {}
  95.   FUNCTION
  96.   TUsrWin.
  97.   getPort:PPort;
  98.     begin
  99.       getPort := new(PPort, initGet(@self))
  100.     end;
  101.  
  102.   FUNCTION
  103.   TUsrWin.
  104.   {}
  105.   extraText :pChar;
  106.     begin
  107.       extraText := ''
  108.     end;
  109.  
  110.  
  111.   PROCEDURE
  112.   TUsrWin.
  113.   {}
  114.   setText(s:pChar);
  115.     begin
  116.        setWindowText(hWindow, s)
  117.     end;
  118.  
  119.   PROCEDURE
  120.   tUsrWin.
  121.   {}
  122.   paint(paintDC:HDC; VAR paintInfo:TPaintStruct);
  123.     var
  124.       Box       :tRect;
  125.       dc        :PPort;
  126.       oldCursor :THandle;
  127.     begin
  128.       oldCursor := setCursor(loadCursor(null, idc_Wait));
  129.       dc := getPort;
  130.       dc^.set_context(paintDC);
  131.       with paintInfo
  132.       do
  133.         upaint(dc, rcPaint, fErase);
  134.       dc^.free;
  135.       setCursor(oldCursor);
  136.     end;
  137.  
  138.   PROCEDURE
  139.   tUsrWin.
  140.   {}
  141.   upaint(dc:PPort; bounds:tRect; erased:Boolean);
  142.     begin
  143.     end;
  144.  
  145.   PROCEDURE
  146.   tUsrWin.
  147.   {}
  148.   printPage(dc :pPort; page: Word; size: tPoint; var bounds: tRect; pflags: Word);
  149.     begin
  150.       upaint(dc, bounds, TRUE)
  151.     end;
  152.  
  153.   PROCEDURE
  154.   TUsrWin.
  155.   {}
  156.   getPrintRange(var fromPage, toPage :Word);
  157.     begin
  158.       fromPage := 1;
  159.       toPage   := 1;
  160.     end;
  161.  
  162.   FUNCTION
  163.   TUsrWin.
  164.   {}
  165.   printFlags :Longint;
  166.     begin
  167.        printFlags :=    pd_ReturnDC or
  168.                         pd_UseDevModeCopies or
  169.                         pd_NoSelection or
  170.                         pd_NoPageNums or
  171.                         pd_NoWarning
  172.     end;
  173.  
  174.  
  175.   PROCEDURE
  176.   TUsrWin.
  177.   {}
  178.   repaintAll(erase:Boolean);
  179.     begin
  180.       invalidateRect(hwindow, nil, erase)
  181.     end;
  182.  
  183.   PROCEDURE
  184.   TUsrWin.
  185.   {}
  186.   repaint(box:tRect; erase:Boolean);
  187.     var
  188.       r  :TRect;
  189.       dc :PPort;
  190.     begin
  191.       dc := getPort;
  192.       dc^.lp2dp(box, 2);
  193.       with box
  194.       do
  195.         setRect(r, left, top, right, bottom);
  196.       invalidateRect(hwindow, @r, erase);
  197.       dc^.free
  198.     end;
  199.  
  200.  
  201.   PROCEDURE
  202.   TUsrWin.
  203.   {}
  204.   setRepaintFlag(onOff :Boolean);
  205.     begin
  206.       send(wm_SetRedraw, Word(onOff), null)
  207.     end;
  208.  
  209.  
  210.   PROCEDURE
  211.   TUsrWin.
  212.   {}
  213.   getClientRect(var b:tRect);
  214.     var
  215.       r :TRect;
  216.     begin
  217.       WINPROCS.getClientRect(hwindow, r);
  218.     end;
  219.  
  220.  
  221.   PROCEDURE
  222.     {}
  223.   alert(win:PWindowsObject; msg:pChar);
  224.     var
  225.       flags:Word;
  226.     begin
  227.       flags :=  mb_Ok or mb_IconExclamation;
  228.       messageBeep(flags);
  229.       messageBox(win^.hwindow, msg, Application^.name, flags);
  230.     end;
  231.  
  232.   PROCEDURE
  233.   TUsrWin.
  234.     {}
  235.   alert(msg :pChar);
  236.     var
  237.       f:Word;
  238.     begin
  239.       USRWIN_.alert(@self, msg)
  240.     end;
  241.  
  242.   PROCEDURE
  243.   TUsrWin.
  244.    {}
  245.   update;
  246.     begin
  247.       updateWindow(hwindow)
  248.     end;
  249.  
  250.   PROCEDURE
  251.   TUsrWin.
  252.    {}
  253.   move(bounds :tRect; redraw:Boolean);
  254.     begin
  255.       with bounds
  256.       do
  257.         moveWindow(hwindow, left, top, left-right, bottom-top, redraw)
  258.     end;
  259.  
  260.   FUNCTION
  261.   TUsrWin.
  262.     post(msg, wparam:Word; lparam:Longint):Boolean;
  263.       begin
  264.         post := 0 <> Word(postMessage(hwindow, msg, wparam, lparam))
  265.       end;
  266.  
  267.   FUNCTION
  268.   TUsrWin.
  269.     send(msg, wparam:Word; lparam:Longint):Longint;
  270.       begin
  271.         msg := sendMessage(hwindow, msg, wparam, lparam)
  272.       end;
  273.  
  274.  
  275.  
  276. END.
  277.